class BookController {
    def doSomething() {
        def input
        try {
            input = servletContext.getResourceAsStream("/WEB-INF/myscript.groovy")
            def result = new GroovyShell().evaluate(input.text)
            render result
        }
        finally {
            input.close()
        }
    }
}
servletContext
Purpose
The servletContext object is an instance of the Servlet API’s {jakartaee}jakarta/servlet/ServletContext.html[ServletContext] class.
Examples
Description
The Servlet API’s {jakartaee}jakarta/servlet/ServletContext.html[ServletContext] is useful for, amongst other things, storing global application attributes, reading local server resources and establishing information about the servlet container.
Application attributes which are normally accessible from the {jakartaee}jakarta/servlet/ServletContext#getAttribute(java/lang/String).html[getAttribute] can also be indexed into using the array index operator or de-reference operator:
def mySetting = servletContext["mySetting"]
servletContext["mySetting"] = "foo"
asset "foo" == servletContext.mySetting